# -*- coding:utf-8 -*-
__author__ = 'LangJin'
from flask import Blueprint,request
from loguru import logger
from utils.responseFunc import resultMsg
errorbp = Blueprint("errorbp",__name__)



@errorbp.app_errorhandler(400)
def bad_request(e):
    logger.error(f"请求地址:{request.url}")
    logger.error(f"请求来源:{request.headers.get('X-Real-Ip') or request.remote_addr}")
    logger.error(f"异常原因:{e}")
    return resultMsg(code=0,msg="请求的参数格式不正确,请检查参数格式是否正确"), 400


@errorbp.app_errorhandler(404)
def page_not_found(e):
    logger.error(f"请求地址:{request.url}")
    logger.error(f"请求来源:{request.headers.get('X-Real-Ip') or request.remote_addr}")
    logger.error(f"异常原因:{e}")
    return resultMsg(code=0,msg="您访问的接口不存在,请检查自己的接口地址是否正确。"), 404



@errorbp.app_errorhandler(405)
def method_not_allowed(e):
    logger.error(f"请求地址:{request.url}")
    logger.error(f"请求来源:{request.headers.get('X-Real-Ip') or request.remote_addr}")
    logger.error(f"异常原因:{e}")
    return resultMsg(code=0,msg="你访问接口的类型不正确,请检查自己的请求类型。"), 405


@errorbp.app_errorhandler(Exception)
def internal_server_error(e):
    logger.error(f"请求地址:{request.url}")
    logger.error(f"请求来源:{request.headers.get('X-Real-Ip') or request.remote_addr}")
    logger.error(f"请 求 头:\n{request.headers}")
    logger.error(f"请求数据:{request.values.to_dict() or str(request.data,'utf-8')}")
    logger.error(f"异常原因:{e}")
    return resultMsg(code=0,msg="服务器异常,请联系管理员。"), 500